@bendyline/squisq-editor-react 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +40 -0
  3. package/dist/index.d.ts +188 -55
  4. package/dist/index.js +5094 -2948
  5. package/dist/monaco.js +0 -1
  6. package/dist/styles/index.css +234 -145
  7. package/package.json +9 -6
  8. package/dist/index.js.map +0 -1
  9. package/dist/monaco.js.map +0 -1
  10. package/src/BlockCardView.tsx +0 -121
  11. package/src/BlockPreviewPanel.tsx +0 -69
  12. package/src/BlockPropertiesPopover.tsx +0 -222
  13. package/src/DocumentSettingsDialog.tsx +0 -272
  14. package/src/DropZoneOverlay.tsx +0 -137
  15. package/src/EditorContext.tsx +0 -1274
  16. package/src/EditorShell.tsx +0 -1358
  17. package/src/EmojiPicker.tsx +0 -332
  18. package/src/FolderView.tsx +0 -131
  19. package/src/Icon.tsx +0 -26
  20. package/src/ImageEditor.tsx +0 -395
  21. package/src/ImageNodeView.tsx +0 -284
  22. package/src/ImageViewer.tsx +0 -221
  23. package/src/InlineIcon.ts +0 -84
  24. package/src/InlinePreviewGutter.tsx +0 -590
  25. package/src/LinkDialog.tsx +0 -276
  26. package/src/MediaBin.tsx +0 -500
  27. package/src/MentionExtension.tsx +0 -261
  28. package/src/OutlinePanel.tsx +0 -547
  29. package/src/PlainHtmlPreview.tsx +0 -277
  30. package/src/PreviewControls.tsx +0 -1265
  31. package/src/PreviewPanel.tsx +0 -426
  32. package/src/RawEditor.tsx +0 -743
  33. package/src/RecorderEntry.tsx +0 -162
  34. package/src/StatusBar.tsx +0 -51
  35. package/src/TemplateAnnotation.ts +0 -167
  36. package/src/TemplateContentPreview.tsx +0 -56
  37. package/src/TemplatePicker.tsx +0 -1314
  38. package/src/ThemeCustomizerPanel.tsx +0 -304
  39. package/src/ThemePicker.tsx +0 -433
  40. package/src/TimelineBlockPreview.tsx +0 -37
  41. package/src/TimelineTrack.tsx +0 -671
  42. package/src/Toolbar.tsx +0 -2885
  43. package/src/Tooltip.tsx +0 -142
  44. package/src/TransitionPicker.tsx +0 -390
  45. package/src/VersionHistoryPanel.tsx +0 -359
  46. package/src/ViewMenuPanel.tsx +0 -189
  47. package/src/ViewSwitcher.tsx +0 -56
  48. package/src/WysiwygEditor.tsx +0 -806
  49. package/src/__tests__/blockProperties.test.ts +0 -92
  50. package/src/__tests__/blockPropertiesPopoverTheme.test.tsx +0 -33
  51. package/src/__tests__/blockRange.test.ts +0 -105
  52. package/src/__tests__/blockTagActivity.test.ts +0 -183
  53. package/src/__tests__/buildDocumentPreviewMarkdown.test.ts +0 -75
  54. package/src/__tests__/buildPreviewDocContent.test.ts +0 -65
  55. package/src/__tests__/buildPreviewDocTransition.test.ts +0 -92
  56. package/src/__tests__/canvasSurfaceTextEditing.test.tsx +0 -60
  57. package/src/__tests__/codeContextSectionView.test.tsx +0 -97
  58. package/src/__tests__/codeContextZoneManager.test.ts +0 -127
  59. package/src/__tests__/createShapeLayer.test.ts +0 -46
  60. package/src/__tests__/customLayoutManagerTheme.test.tsx +0 -34
  61. package/src/__tests__/detectMarkdown.test.ts +0 -73
  62. package/src/__tests__/diffContextSections.test.ts +0 -39
  63. package/src/__tests__/documentSettingsDialog.test.tsx +0 -197
  64. package/src/__tests__/drawingShapeRoundTrip.test.ts +0 -49
  65. package/src/__tests__/editorScrollHandoff.test.tsx +0 -102
  66. package/src/__tests__/editorScrollSync.test.ts +0 -65
  67. package/src/__tests__/editorShellCodeContext.test.tsx +0 -86
  68. package/src/__tests__/editorShellProps.test.tsx +0 -550
  69. package/src/__tests__/embeddedMedia.test.ts +0 -48
  70. package/src/__tests__/emojiPicker.test.tsx +0 -93
  71. package/src/__tests__/fileKind.test.ts +0 -112
  72. package/src/__tests__/findMode.test.tsx +0 -104
  73. package/src/__tests__/findModel.test.ts +0 -55
  74. package/src/__tests__/headingTransition.test.ts +0 -176
  75. package/src/__tests__/imageEditAffordance.test.tsx +0 -272
  76. package/src/__tests__/imageEditModalContract.test.tsx +0 -119
  77. package/src/__tests__/imageEditorShell.test.tsx +0 -94
  78. package/src/__tests__/imageEditorState.test.ts +0 -171
  79. package/src/__tests__/inlinePreviewGutter.test.tsx +0 -62
  80. package/src/__tests__/inlinePreviewGutterAllBlocks.test.tsx +0 -103
  81. package/src/__tests__/jsonEditor.test.tsx +0 -223
  82. package/src/__tests__/layersPanel.test.tsx +0 -167
  83. package/src/__tests__/layoutChildRoundTrip.test.ts +0 -71
  84. package/src/__tests__/linkDialogDocPicker.test.tsx +0 -137
  85. package/src/__tests__/majorApiTypes.test.ts +0 -26
  86. package/src/__tests__/markdownCodeFence.test.ts +0 -45
  87. package/src/__tests__/mediaAttachmentFlow.test.ts +0 -110
  88. package/src/__tests__/mediaBinDrop.test.tsx +0 -90
  89. package/src/__tests__/mediaReferences.test.ts +0 -97
  90. package/src/__tests__/narrationSave.test.ts +0 -148
  91. package/src/__tests__/outlinePanel.test.tsx +0 -169
  92. package/src/__tests__/outlineSource.test.ts +0 -217
  93. package/src/__tests__/plainHtmlPreview.test.tsx +0 -125
  94. package/src/__tests__/presentationMode.test.tsx +0 -290
  95. package/src/__tests__/previewControls.test.tsx +0 -571
  96. package/src/__tests__/previewPanelAudioFailure.test.tsx +0 -46
  97. package/src/__tests__/previewPanelPresentation.test.tsx +0 -126
  98. package/src/__tests__/previewPanelTransforms.test.tsx +0 -117
  99. package/src/__tests__/propertiesPanel.test.tsx +0 -69
  100. package/src/__tests__/rawEditorModelIsolation.test.ts +0 -19
  101. package/src/__tests__/recorderFormats.test.ts +0 -146
  102. package/src/__tests__/recorderMediaInsert.test.ts +0 -86
  103. package/src/__tests__/recorderTheme.test.tsx +0 -42
  104. package/src/__tests__/recorderTimingJson.test.ts +0 -41
  105. package/src/__tests__/resolveBlockVisual.test.ts +0 -43
  106. package/src/__tests__/selectionConversions.test.ts +0 -80
  107. package/src/__tests__/statusBar.test.tsx +0 -27
  108. package/src/__tests__/teleprompter.test.tsx +0 -190
  109. package/src/__tests__/templateAnnotationRoundTrip.test.ts +0 -99
  110. package/src/__tests__/templateContentPreview.test.ts +0 -101
  111. package/src/__tests__/templatePickerMetadata.test.ts +0 -32
  112. package/src/__tests__/templatePickerPortal.test.tsx +0 -62
  113. package/src/__tests__/timelineSource.test.ts +0 -134
  114. package/src/__tests__/tiptapBridge.test.ts +0 -575
  115. package/src/__tests__/tiptapBridgeConformance.test.ts +0 -47
  116. package/src/__tests__/tiptapCodeBlockRoundTrip.test.ts +0 -109
  117. package/src/__tests__/tiptapImageRoundTrip.test.ts +0 -73
  118. package/src/__tests__/toolbarSelectionConversion.test.tsx +0 -190
  119. package/src/__tests__/tooltip.test.tsx +0 -72
  120. package/src/__tests__/transformStyleId.test.ts +0 -13
  121. package/src/__tests__/transitionCatalog.test.ts +0 -64
  122. package/src/__tests__/useBlockNavigator.test.tsx +0 -67
  123. package/src/__tests__/useImageEditor.test.tsx +0 -226
  124. package/src/__tests__/useJsonEditorTokens.test.ts +0 -59
  125. package/src/__tests__/useMediaRecorder.test.ts +0 -302
  126. package/src/__tests__/useTimelineClock.test.ts +0 -21
  127. package/src/__tests__/versionHistory.test.tsx +0 -197
  128. package/src/__tests__/viewMenuPanel.test.tsx +0 -130
  129. package/src/__tests__/writeCanvasSettings.test.ts +0 -15
  130. package/src/__tests__/wysiwygImageUpload.test.ts +0 -69
  131. package/src/__tests__/wysiwygTemplateBadgeFocus.test.tsx +0 -56
  132. package/src/asciiDiagram/AsciiDiagramExtension.ts +0 -343
  133. package/src/asciiDiagram/AsciiDiagramWidget.tsx +0 -254
  134. package/src/asciiDiagram/RepairableDiagramExtension.ts +0 -200
  135. package/src/asciiDiagram/__tests__/AsciiDiagramExtension.test.ts +0 -164
  136. package/src/asciiDiagram/__tests__/RepairableDiagramExtension.test.ts +0 -159
  137. package/src/asciiDiagram/__tests__/asciiDiagramCommands.test.ts +0 -284
  138. package/src/asciiDiagram/__tests__/asciiDiagramOps.test.ts +0 -114
  139. package/src/asciiDiagram/__tests__/asciiPaste.test.ts +0 -43
  140. package/src/asciiDiagram/asciiDiagramCommands.ts +0 -174
  141. package/src/asciiDiagram/asciiDiagramData.ts +0 -149
  142. package/src/asciiDiagram/asciiDiagramOps.ts +0 -238
  143. package/src/asciiDiagram/asciiPaste.ts +0 -19
  144. package/src/blockProperties.ts +0 -88
  145. package/src/blockRange.ts +0 -132
  146. package/src/blockSlice.ts +0 -75
  147. package/src/blockTagActivity.ts +0 -233
  148. package/src/buildDocumentPreviewMarkdown.ts +0 -168
  149. package/src/buildPreviewDoc.ts +0 -407
  150. package/src/codeContext/CodeContextSectionView.tsx +0 -124
  151. package/src/codeContext/CodeContextZoneManager.ts +0 -149
  152. package/src/codeContext/CodeContextZones.tsx +0 -121
  153. package/src/codeContext/diffContextSections.ts +0 -38
  154. package/src/codeContext/types.ts +0 -75
  155. package/src/codeSnippet/CodeSnippetExtension.ts +0 -205
  156. package/src/codeSnippet/CodeSnippetWidget.tsx +0 -109
  157. package/src/codeSnippet/__tests__/CodeSnippetExtension.test.ts +0 -95
  158. package/src/codeSnippet/__tests__/codeSnippetLanguages.test.ts +0 -50
  159. package/src/codeSnippet/codeSnippetCommands.ts +0 -21
  160. package/src/codeSnippet/codeSnippetData.ts +0 -43
  161. package/src/codeSnippet/codeSnippetLanguages.ts +0 -216
  162. package/src/customTemplates/AddBin.tsx +0 -126
  163. package/src/customTemplates/CustomLayoutManager.tsx +0 -234
  164. package/src/customTemplates/CustomTemplateContext.tsx +0 -188
  165. package/src/customTemplates/LayerToolbar.tsx +0 -580
  166. package/src/customTemplates/ShapeGlyph.tsx +0 -47
  167. package/src/customTemplates/TemplateDesigner.tsx +0 -433
  168. package/src/customTemplates/__tests__/library.test.ts +0 -96
  169. package/src/customTemplates/__tests__/normalizePositions.test.ts +0 -109
  170. package/src/customTemplates/__tests__/shapeDefs.test.ts +0 -49
  171. package/src/customTemplates/__tests__/useMemoryLayerAdapter.test.ts +0 -108
  172. package/src/customTemplates/designer.css +0 -732
  173. package/src/customTemplates/index.ts +0 -31
  174. package/src/customTemplates/library.ts +0 -110
  175. package/src/customTemplates/normalizePositions.ts +0 -75
  176. package/src/customTemplates/shapeDefs.ts +0 -131
  177. package/src/customTemplates/thumbnail.tsx +0 -63
  178. package/src/customTemplates/tokenDefs.ts +0 -60
  179. package/src/customTemplates/useDocCustomTemplates.ts +0 -52
  180. package/src/customTemplates/useMemoryLayerAdapter.ts +0 -129
  181. package/src/customThemes/CustomThemeContext.tsx +0 -185
  182. package/src/customThemes/CustomThemeDialog.tsx +0 -316
  183. package/src/customThemes/ImportThemeSection.tsx +0 -178
  184. package/src/customThemes/__tests__/CustomThemeContext.test.tsx +0 -64
  185. package/src/customThemes/__tests__/CustomThemeDialog.test.tsx +0 -47
  186. package/src/customThemes/__tests__/customThemeLibrary.test.ts +0 -60
  187. package/src/customThemes/__tests__/importThemeSection.test.tsx +0 -192
  188. package/src/customThemes/customThemeLibrary.ts +0 -100
  189. package/src/customThemes/index.ts +0 -37
  190. package/src/customThemes/themeControls.tsx +0 -229
  191. package/src/customThemes/themeDraft.ts +0 -288
  192. package/src/customThemes/useDocCustomThemes.ts +0 -49
  193. package/src/detectMarkdown.ts +0 -62
  194. package/src/diagram/DiagramCanvas.tsx +0 -260
  195. package/src/diagram/DiagramMaximizedOverlay.tsx +0 -46
  196. package/src/diagram/diagramCommands.ts +0 -604
  197. package/src/diagram/diagramConstants.ts +0 -17
  198. package/src/diagram/types.ts +0 -35
  199. package/src/editorScrollSync.ts +0 -73
  200. package/src/embeddedMedia.ts +0 -78
  201. package/src/emojiData.ts +0 -1317
  202. package/src/fileKind.ts +0 -158
  203. package/src/find/FindHighlightExtension.ts +0 -81
  204. package/src/find/FindToolbar.tsx +0 -314
  205. package/src/find/findModel.ts +0 -77
  206. package/src/frontmatter.ts +0 -29
  207. package/src/frontmatterSettings.ts +0 -23
  208. package/src/headingTransition.ts +0 -291
  209. package/src/hooks/useFileDrop.ts +0 -266
  210. package/src/imageEditor/CanvasSurface.tsx +0 -703
  211. package/src/imageEditor/ImageVersionHistoryDropdown.tsx +0 -396
  212. package/src/imageEditor/LayersPanel.tsx +0 -218
  213. package/src/imageEditor/PropertiesPanel.tsx +0 -474
  214. package/src/imageEditor/Toolbar.tsx +0 -459
  215. package/src/imageEditor/createShapeLayer.ts +0 -280
  216. package/src/imageEditor/icons.tsx +0 -68
  217. package/src/imageEditor/image-editor.css +0 -574
  218. package/src/imageEditor/layers/EditorImageLayer.tsx +0 -45
  219. package/src/imageEditor/layers/EditorShapeLayer.tsx +0 -62
  220. package/src/imageEditor/layers/EditorTextLayer.tsx +0 -45
  221. package/src/imageEditor/layers/SelectionHandles.tsx +0 -86
  222. package/src/imageEditor/state.ts +0 -173
  223. package/src/imageEditor/useImageEditor.ts +0 -385
  224. package/src/imageEditor/useImageEditorTokens.ts +0 -70
  225. package/src/index.ts +0 -559
  226. package/src/jsonEditor/EmbeddedRichTextField.tsx +0 -81
  227. package/src/jsonEditor/JsonEditor.tsx +0 -81
  228. package/src/jsonEditor/JsonEditorContext.tsx +0 -81
  229. package/src/jsonEditor/RenderNode.tsx +0 -87
  230. package/src/jsonEditor/editors.tsx +0 -745
  231. package/src/jsonEditor/index.ts +0 -2
  232. package/src/jsonEditor/json-editor.css +0 -463
  233. package/src/jsonEditor/useJsonEditorTokens.ts +0 -33
  234. package/src/markdownCodeFence.ts +0 -72
  235. package/src/mediaDragMime.ts +0 -32
  236. package/src/mediaEntries.ts +0 -12
  237. package/src/mediaReferences.ts +0 -301
  238. package/src/mermaid/MermaidDiagramCanvas.tsx +0 -693
  239. package/src/mermaid/MermaidDiagramExtension.ts +0 -243
  240. package/src/mermaid/MermaidDiagramTypeThumbnail.tsx +0 -184
  241. package/src/mermaid/MermaidDiagramWidget.tsx +0 -653
  242. package/src/mermaid/MermaidShapePalette.tsx +0 -245
  243. package/src/mermaid/__tests__/MermaidDiagramExtension.test.ts +0 -361
  244. package/src/mermaid/__tests__/mermaidDiagramTypes.test.ts +0 -35
  245. package/src/mermaid/__tests__/mermaidRenderer.test.ts +0 -49
  246. package/src/mermaid/__tests__/mermaidSourceOps.test.ts +0 -213
  247. package/src/mermaid/__tests__/mermaidSyntax.test.ts +0 -71
  248. package/src/mermaid/mermaidCommands.ts +0 -34
  249. package/src/mermaid/mermaidData.ts +0 -31
  250. package/src/mermaid/mermaidDiagramTypes.ts +0 -325
  251. package/src/mermaid/mermaidModel.ts +0 -31
  252. package/src/mermaid/mermaidRenderer.ts +0 -181
  253. package/src/mermaid/mermaidShapes.ts +0 -113
  254. package/src/mermaid/mermaidSourceOps.ts +0 -454
  255. package/src/monaco.ts +0 -35
  256. package/src/monacoWorkers.ts +0 -89
  257. package/src/outlineSource.ts +0 -171
  258. package/src/presentation/PresentationMode.tsx +0 -596
  259. package/src/rawEditorIsolation.ts +0 -18
  260. package/src/recorder/RecorderButton.tsx +0 -80
  261. package/src/recorder/RecorderModal.tsx +0 -706
  262. package/src/recorder/RecorderPanel.tsx +0 -77
  263. package/src/recorder/formats.ts +0 -159
  264. package/src/recorder/hooks/useMediaRecorder.ts +0 -436
  265. package/src/recorder/hooks/useStreamPreview.ts +0 -47
  266. package/src/recorder/insertMediaBlock.ts +0 -30
  267. package/src/recorder/sources/cameraStream.ts +0 -32
  268. package/src/recorder/sources/micStream.ts +0 -25
  269. package/src/recorder/sources/screenStream.ts +0 -162
  270. package/src/recorder/timingJson.ts +0 -66
  271. package/src/resolveBlockVisual.ts +0 -39
  272. package/src/scene/Scene.tsx +0 -647
  273. package/src/scene/SceneBlockExtension.ts +0 -205
  274. package/src/scene/SceneBlockToolbar.tsx +0 -216
  275. package/src/scene/SceneBlockWidget.tsx +0 -441
  276. package/src/scene/ScenePropsBar.tsx +0 -85
  277. package/src/scene/SceneSelection.tsx +0 -111
  278. package/src/scene/SceneSideToolbar.tsx +0 -89
  279. package/src/scene/SceneViewControls.tsx +0 -43
  280. package/src/scene/SceneViewport.tsx +0 -106
  281. package/src/scene/ShapePalette.tsx +0 -196
  282. package/src/scene/__tests__/DiagramAdapter.test.ts +0 -142
  283. package/src/scene/__tests__/SceneBlockExtension.test.ts +0 -33
  284. package/src/scene/__tests__/bezierEdit.test.ts +0 -85
  285. package/src/scene/__tests__/blockLayers.test.ts +0 -57
  286. package/src/scene/__tests__/fitScale.test.ts +0 -19
  287. package/src/scene/__tests__/sceneIsolation.test.tsx +0 -119
  288. package/src/scene/__tests__/shapeLayers.test.ts +0 -106
  289. package/src/scene/__tests__/useSceneHitTest.test.ts +0 -90
  290. package/src/scene/__tests__/useScenePanZoom.test.ts +0 -130
  291. package/src/scene/adapters/DiagramAdapter.ts +0 -79
  292. package/src/scene/adapters/DrawingAdapter.ts +0 -420
  293. package/src/scene/adapters/LayoutAdapter.ts +0 -313
  294. package/src/scene/adapters/blockLayers.ts +0 -159
  295. package/src/scene/commands/SceneCommand.ts +0 -84
  296. package/src/scene/commands/drawingCommands.ts +0 -318
  297. package/src/scene/commands/layoutCommands.ts +0 -301
  298. package/src/scene/fitScale.ts +0 -17
  299. package/src/scene/hooks/useSceneHitTest.ts +0 -105
  300. package/src/scene/hooks/useScenePanZoom.ts +0 -154
  301. package/src/scene/hooks/useSceneSelection.ts +0 -62
  302. package/src/scene/index.ts +0 -90
  303. package/src/scene/layers/DiagramEdges.tsx +0 -142
  304. package/src/scene/layers/edgeGeometry.ts +0 -104
  305. package/src/scene/layers/nodeCard.tsx +0 -164
  306. package/src/scene/layers/renderLayer.tsx +0 -70
  307. package/src/scene/layers/shapeLayers.ts +0 -201
  308. package/src/scene/paths/bezierEdit.ts +0 -208
  309. package/src/scene/scene.css +0 -874
  310. package/src/scene/text/SceneTextOverlay.tsx +0 -161
  311. package/src/scene/text/sceneTextChannel.ts +0 -46
  312. package/src/scene/text/sceneTextConfig.ts +0 -31
  313. package/src/scene/text/sceneTiptap.ts +0 -36
  314. package/src/scene/text/useSceneTextEditing.ts +0 -39
  315. package/src/scene/tools/ConnectTool.ts +0 -209
  316. package/src/scene/tools/DrawingConnectTool.ts +0 -231
  317. package/src/scene/tools/PathTool.ts +0 -158
  318. package/src/scene/tools/PlaceTool.ts +0 -47
  319. package/src/scene/tools/SceneTool.ts +0 -85
  320. package/src/scene/tools/SelectTool.ts +0 -300
  321. package/src/scene/tools/ShapeTool.ts +0 -143
  322. package/src/scene/tools/TextTool.ts +0 -72
  323. package/src/scene/tools/TokenTool.ts +0 -95
  324. package/src/scene/tools/createDrawShapeTool.ts +0 -82
  325. package/src/selectionConversions.ts +0 -155
  326. package/src/styles/ascii-diagram.css +0 -79
  327. package/src/styles/ascii-timeline.css +0 -596
  328. package/src/styles/code-context.css +0 -155
  329. package/src/styles/code-snippet.css +0 -76
  330. package/src/styles/diagram.css +0 -183
  331. package/src/styles/editor.css +0 -7131
  332. package/src/styles/folder-view.css +0 -210
  333. package/src/styles/image-edit-affordance.css +0 -201
  334. package/src/styles/index.css +0 -20
  335. package/src/styles/mermaid-diagram.css +0 -487
  336. package/src/styles/tree-view.css +0 -189
  337. package/src/teleprompter/TeleprompterControls.tsx +0 -218
  338. package/src/teleprompter/TeleprompterSelfView.tsx +0 -22
  339. package/src/teleprompter/TeleprompterSurface.tsx +0 -267
  340. package/src/teleprompter/TeleprompterView.tsx +0 -338
  341. package/src/teleprompter/canvasRenderer.ts +0 -161
  342. package/src/teleprompter/floatingWindow.ts +0 -352
  343. package/src/teleprompter/index.ts +0 -61
  344. package/src/teleprompter/pcmWorklet.ts +0 -62
  345. package/src/teleprompter/recording/insertPreamble.ts +0 -80
  346. package/src/teleprompter/recording/narrationSave.ts +0 -134
  347. package/src/teleprompter/recording/useNarrationRecorder.ts +0 -367
  348. package/src/teleprompter/scrollModel.ts +0 -85
  349. package/src/teleprompter/teleprompterTheme.ts +0 -303
  350. package/src/teleprompter/types.ts +0 -38
  351. package/src/teleprompter/useFloatingWindow.ts +0 -74
  352. package/src/teleprompter/useMicAnalysis.ts +0 -211
  353. package/src/teleprompter/useTeleprompter.ts +0 -421
  354. package/src/templateContentPreviewResolver.ts +0 -360
  355. package/src/timeline/TimelineEditorWidget.tsx +0 -861
  356. package/src/timeline/TimelineViewExtension.ts +0 -252
  357. package/src/timeline/__tests__/TimelineEditorWidget.test.tsx +0 -414
  358. package/src/timeline/__tests__/TimelineViewExtension.test.ts +0 -163
  359. package/src/timeline/__tests__/timelineCommands.test.ts +0 -359
  360. package/src/timeline/__tests__/timelineOps.test.ts +0 -277
  361. package/src/timeline/__tests__/timelinePaste.test.ts +0 -34
  362. package/src/timeline/timelineCommands.ts +0 -421
  363. package/src/timeline/timelineData.ts +0 -54
  364. package/src/timeline/timelineOps.ts +0 -381
  365. package/src/timeline/timelinePaste.ts +0 -8
  366. package/src/timelineSource.ts +0 -244
  367. package/src/tiptap/TiptapAudio.tsx +0 -86
  368. package/src/tiptap/TiptapVideo.tsx +0 -119
  369. package/src/tiptap/useResolvedMediaSrc.ts +0 -47
  370. package/src/tiptapBridge.ts +0 -986
  371. package/src/tooltipPlacement.ts +0 -13
  372. package/src/transformStyleId.ts +0 -17
  373. package/src/transitionCatalog.ts +0 -159
  374. package/src/treeview/TreeOutlineWidget.tsx +0 -390
  375. package/src/treeview/TreeViewExtension.ts +0 -250
  376. package/src/treeview/__tests__/TreeOutlineWidget.test.tsx +0 -156
  377. package/src/treeview/__tests__/TreeViewExtension.test.ts +0 -122
  378. package/src/treeview/__tests__/treeOps.test.ts +0 -177
  379. package/src/treeview/__tests__/treePaste.test.ts +0 -40
  380. package/src/treeview/__tests__/treeViewCommands.test.ts +0 -179
  381. package/src/treeview/treeOps.ts +0 -231
  382. package/src/treeview/treePaste.ts +0 -13
  383. package/src/treeview/treeViewCommands.ts +0 -99
  384. package/src/treeview/treeViewData.ts +0 -41
  385. package/src/types/monaco-shims.d.ts +0 -10
  386. package/src/useBlockNavigator.ts +0 -153
  387. package/src/useHeadingLayout.ts +0 -294
  388. package/src/useMonacoLoader.ts +0 -82
  389. package/src/useTimelineClock.ts +0 -76
  390. package/src/utils/collectInlineFontAwesomeCss.ts +0 -69
  391. package/src/utils/dropUtils.ts +0 -136
  392. package/src/utils/normalizeMalformedAssetUrl.ts +0 -22
  393. package/src/writeCanvasSettings.ts +0 -30
  394. package/src/wysiwygImageUpload.ts +0 -113
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Bendyline LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE.md ADDED
@@ -0,0 +1,40 @@
1
+ # Third-Party Notices for @bendyline/squisq-editor-react
2
+
3
+ This notice applies to the `@bendyline/squisq-editor-react` npm package.
4
+ Squisq-authored code is licensed under the MIT license in `LICENSE`.
5
+ Third-party components remain under their respective license terms.
6
+
7
+ ## Runtime and peer dependencies
8
+
9
+ | Package | Version | License | Repository |
10
+ | ------------------------------ | --------- | ----------------------------- | -------------------------------------------- |
11
+ | @bendyline/squisq | 2.1.0 | MIT | https://github.com/bendyline/squisq |
12
+ | @bendyline/squisq-formats | 2.1.0 | MIT | https://github.com/bendyline/squisq |
13
+ | @bendyline/squisq-react | 2.1.0 | MIT | https://github.com/bendyline/squisq |
14
+ | @fortawesome/fontawesome-free | 7.2.0 | CC-BY-4.0 AND OFL-1.1 AND MIT | https://github.com/FortAwesome/Font-Awesome |
15
+ | @monaco-editor/react | 4.7.0 | MIT | https://github.com/suren-atoyan/monaco-react |
16
+ | @tiptap/extension-image | 2.27.2 | MIT | https://tiptap.dev |
17
+ | @tiptap/extension-link | 2.27.2 | MIT | https://tiptap.dev |
18
+ | @tiptap/extension-mention | 2.27.2 | MIT | https://tiptap.dev |
19
+ | @tiptap/extension-placeholder | 2.27.2 | MIT | https://tiptap.dev |
20
+ | @tiptap/extension-table | 2.27.2 | MIT | https://tiptap.dev |
21
+ | @tiptap/extension-table-cell | 2.27.2 | MIT | https://tiptap.dev |
22
+ | @tiptap/extension-table-header | 2.27.2 | MIT | https://tiptap.dev |
23
+ | @tiptap/extension-table-row | 2.27.2 | MIT | https://tiptap.dev |
24
+ | @tiptap/extension-task-item | 2.27.2 | MIT | https://tiptap.dev |
25
+ | @tiptap/extension-task-list | 2.27.2 | MIT | https://tiptap.dev |
26
+ | @tiptap/pm | 2.27.2 | MIT | https://tiptap.dev |
27
+ | @tiptap/react | 2.27.2 | MIT | https://tiptap.dev |
28
+ | @tiptap/starter-kit | 2.27.2 | MIT | https://tiptap.dev |
29
+ | @tiptap/suggestion | 2.27.2 | MIT | https://tiptap.dev |
30
+ | mermaid | 11.16.0 | MIT | https://github.com/mermaid-js/mermaid |
31
+ | type-fest | 4.41.0 | MIT OR CC0-1.0 | https://github.com/sindresorhus/type-fest |
32
+ | monaco-editor _(peer)_ | >=0.50.0 | MIT | https://github.com/microsoft/monaco-editor |
33
+ | react _(peer)_ | ^18 / ^19 | MIT | https://github.com/facebook/react |
34
+ | react-dom _(peer)_ | ^18 / ^19 | MIT | https://github.com/facebook/react |
35
+
36
+ Font Awesome Free contains icon artwork under CC-BY-4.0, font files under
37
+ OFL-1.1, and CSS/JavaScript under MIT. Attribution is required when its icon
38
+ artwork is redistributed. Mermaid is Copyright (c) 2014-2022 Knut Sveidqvist
39
+ and is distributed under the MIT License. Complete license texts are included
40
+ in the respective dependency distributions and source repositories.
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { ReactNode, CSSProperties, RefObject, KeyboardEvent } from 'react';
4
4
  import { Doc, MediaProvider, Theme, CustomTemplateDefinition, ThemeSeedColors, ViewportPreset, ViewportConfig, Block, MediaEntry, DiagramEdgeAnchor, SurfaceScheme, ImageEditDoc, ImageEditLayer } from '@bendyline/squisq/schemas';
5
- import { MarkdownDocument } from '@bendyline/squisq/markdown';
5
+ import { MarkdownDocument, ResourcePolicy } from '@bendyline/squisq/markdown';
6
6
  import { ContentContainer } from '@bendyline/squisq/storage';
7
7
  import { DocumentVersionManager, SaveVersionOptions, SaveVersionResult, PrunePolicy } from '@bendyline/squisq/versions';
8
8
  import * as _tiptap_core from '@tiptap/core';
@@ -365,6 +365,13 @@ interface EditorContextValue extends EditorState, EditorActions {
365
365
  * path link. When unset, the dialog falls back to URL-only.
366
366
  */
367
367
  documentLinkProvider: DocumentLinkProvider | null;
368
+ /**
369
+ * Extra link schemes the host intercepts itself (e.g. an app-internal
370
+ * navigation protocol). The link dialog validates against core's
371
+ * `sanitizeUrl` with these allowed, so authors aren't told a scheme the
372
+ * host DOES resolve is unsupported. Executable schemes stay refused.
373
+ */
374
+ linkSchemes: readonly string[] | undefined;
368
375
  }
369
376
  type ImageDisplayMode = 'inline' | 'thumbnail';
370
377
  /**
@@ -429,6 +436,12 @@ interface EditorProviderProps {
429
436
  * Omit to fall back to URL-only link insertion.
430
437
  */
431
438
  documentLinkProvider?: DocumentLinkProvider | null;
439
+ /**
440
+ * Extra link schemes this host resolves itself. Threaded into the link
441
+ * dialog's `sanitizeUrl` check so a host-custom protocol is accepted;
442
+ * executable schemes are refused regardless.
443
+ */
444
+ linkSchemes?: readonly string[];
432
445
  /**
433
446
  * Whether the in-editor media recorder is available in the toolbar.
434
447
  * Defaults to true. Set to false to suppress the recorder affordance
@@ -535,7 +548,7 @@ interface ViewPreferences {
535
548
  /** Document vs. block-at-a-time layout. */
536
549
  layoutMode?: LayoutMode;
537
550
  }
538
- declare function EditorProvider({ initialMarkdown, initialView, articleId, colorScheme: initialColorScheme, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, mediaProvider, imageDisplayMode, mentionProvider, documentLinkProvider, allowRecording, allowNarrate, fileName, language, findMode: controlledFindMode, onFindModeChange, inlinePreview, showStatusBar, outline, blockTags, blockTagVisibility: initialBlockTagVisibility, themeInheritance, layoutMode, viewPreferences, onViewPreferencesChange, children, }: EditorProviderProps): react_jsx_runtime.JSX.Element;
551
+ declare function EditorProvider({ initialMarkdown, initialView, articleId, colorScheme: initialColorScheme, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, mediaProvider, imageDisplayMode, mentionProvider, documentLinkProvider, linkSchemes, allowRecording, allowNarrate, fileName, language, findMode: controlledFindMode, onFindModeChange, inlinePreview, showStatusBar, outline, blockTags, blockTagVisibility: initialBlockTagVisibility, themeInheritance, layoutMode, viewPreferences, onViewPreferencesChange, children, }: EditorProviderProps): react_jsx_runtime.JSX.Element;
539
552
 
540
553
  /**
541
554
  * Host-supplied context sections rendered INSIDE the Monaco (raw/code)
@@ -714,6 +727,8 @@ interface EditorShellProps {
714
727
  toolbarSlotAfterActions?: ReactNode;
715
728
  /** Content rendered at the rightmost end of the toolbar, after all other elements. */
716
729
  toolbarSlotRight?: ReactNode;
730
+ /** Host-supplied content rendered at the right edge of the bottom status bar. */
731
+ statusBarSlotRight?: ReactNode;
717
732
  /**
718
733
  * Whether to show the "Play" (preview) tab in the toolbar. When false, the
719
734
  * tab and its preview panel are hidden, and ⌘3 becomes a no-op. Use this
@@ -770,8 +785,8 @@ interface EditorShellProps {
770
785
  */
771
786
  writeCanvasSettings?: WriteCanvasSettings;
772
787
  /**
773
- * Render the bottom status bar (word / character / line / block counts
774
- * and parse-state indicator). Defaults to `true`. Set to `false` in
788
+ * Render the bottom status bar (word / character / line / block counts,
789
+ * parse errors, and optional host status). Defaults to `true`. Set to `false` in
775
790
  * embedded surfaces — chat composers and other short-form inputs —
776
791
  * where the stats are noise.
777
792
  */
@@ -827,6 +842,14 @@ interface EditorShellProps {
827
842
  * remote API, …) implement this; the editor stays agnostic.
828
843
  */
829
844
  documentLinkProvider?: DocumentLinkProvider | null;
845
+ /**
846
+ * Extra link schemes this host resolves itself (e.g. an app-internal
847
+ * navigation protocol). The link dialog validates typed URLs against
848
+ * core's `sanitizeUrl` with these allowed, so an author isn't told a
849
+ * scheme the host DOES handle is unsupported. Executable schemes
850
+ * (`javascript:`, `vbscript:`, `data:`) are refused regardless.
851
+ */
852
+ linkSchemes?: readonly string[];
830
853
  /**
831
854
  * Whether the in-editor media recorder is surfaced in the toolbar.
832
855
  * Defaults to true — when a `mediaProvider` is wired, a record
@@ -969,7 +992,7 @@ interface EditorShellProps {
969
992
  * Complete markdown editor shell with toolbar, view switcher, and three
970
993
  * editing modes: Raw (Monaco), WYSIWYG (Tiptap), and Preview.
971
994
  */
972
- declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, showPlayTab, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, language, findMode, onFindModeChange, mentionProvider, documentLinkProvider, allowRecording, allowNarrate, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): react_jsx_runtime.JSX.Element;
995
+ declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, statusBarSlotRight, showPlayTab, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, language, findMode, onFindModeChange, mentionProvider, documentLinkProvider, linkSchemes, allowRecording, allowNarrate, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): react_jsx_runtime.JSX.Element;
973
996
 
974
997
  /**
975
998
  * Bridges a host-supplied {@link CodeContext} onto the live Monaco editor:
@@ -1727,6 +1750,13 @@ interface PreviewSettings {
1727
1750
  /** Config for the docked theme designer, or null when closed. Rendered by
1728
1751
  * `<ThemeDesignerDock>` in the editor's content row. */
1729
1752
  themeDesigner: ThemeDesignerConfig | null;
1753
+ /**
1754
+ * Set when a theme write was ABORTED because the document source could not
1755
+ * be read. The write is skipped rather than merged onto an empty list (which
1756
+ * would erase the doc's other custom themes/templates), so this must be
1757
+ * shown — otherwise the save looks like a silent no-op.
1758
+ */
1759
+ themeSaveError: string | null;
1730
1760
  }
1731
1761
  /** Everything `<ThemeDesignerDock>` needs to render the designer pane. */
1732
1762
  interface ThemeDesignerConfig {
@@ -2179,20 +2209,17 @@ interface MediaBinProps {
2179
2209
  }
2180
2210
  declare function MediaBin({ mediaProvider, isDark, refreshKey, usedMediaPaths, onMediaUploaded, onMediaRemoved, onCountChange, }: MediaBinProps): react_jsx_runtime.JSX.Element;
2181
2211
 
2182
- /**
2183
- * StatusBar
2184
- *
2185
- * Bottom status bar showing document statistics and parse status.
2186
- */
2187
2212
  interface StatusBarProps {
2188
2213
  /** Additional class name */
2189
2214
  className?: string;
2215
+ /** Host-supplied status content rendered at the right edge. */
2216
+ slotRight?: ReactNode;
2190
2217
  }
2191
2218
  /**
2192
2219
  * Status bar displaying document statistics: character count, word count,
2193
- * block count, and parse/error status.
2220
+ * block count, parse errors, and optional host status.
2194
2221
  */
2195
- declare function StatusBar({ className }: StatusBarProps): react_jsx_runtime.JSX.Element;
2222
+ declare function StatusBar({ className, slotRight }: StatusBarProps): react_jsx_runtime.JSX.Element;
2196
2223
 
2197
2224
  /**
2198
2225
  * TooltipLayer
@@ -2637,6 +2664,27 @@ interface DiagramCanvasProps {
2637
2664
  }
2638
2665
  declare function DiagramCanvas({ nodes: incomingNodes, edges: incomingEdges, onCommand, showMaximize, maximized, onToggleMaximize, activeToolId: controlledToolId, onActiveToolIdChange, onSelectionChange, textChannel, }: DiagramCanvasProps): react_jsx_runtime.JSX.Element;
2639
2666
 
2667
+ /**
2668
+ * Shared position-registry remapping for the fence-widget families (ascii
2669
+ * diagram, tree, timeline, mermaid, repairable).
2670
+ *
2671
+ * Each family keeps a registry of `{ id, pos }` entries: a synthetic session
2672
+ * id per claimed code fence, plus that fence's current document position.
2673
+ * The id is what keys the widget decoration, so preserving it across a
2674
+ * transaction is what keeps the mounted React root — and all of its
2675
+ * unpersisted state (pan/zoom, height, `sourceVisible`, collapse set) —
2676
+ * alive. This module owns the one rule for deciding which old id belongs to
2677
+ * which new position; it lived as five near-identical copies before.
2678
+ */
2679
+
2680
+ /** One registered fence: a stable session id at a live document position. */
2681
+ interface FenceBlockEntry {
2682
+ /** Synthetic session id, stable across edits to one fence. */
2683
+ id: string;
2684
+ /** Document position of the codeBlock node at the current state. */
2685
+ pos: number;
2686
+ }
2687
+
2640
2688
  /**
2641
2689
  * AsciiDiagramExtension — Tiptap/ProseMirror plugin that turns code blocks
2642
2690
  * containing ASCII box-and-line diagrams into interactive diagram canvases.
@@ -2663,12 +2711,7 @@ declare function DiagramCanvas({ nodes: incomingNodes, edges: incomingEdges, onC
2663
2711
  * doesn't kick the user back to a raw code block mid-edit.
2664
2712
  */
2665
2713
 
2666
- interface AsciiDiagramBlockEntry {
2667
- /** Synthetic session id (`ascii-N`), stable across edits for one block. */
2668
- id: string;
2669
- /** Document position of the codeBlock node at the current state. */
2670
- pos: number;
2671
- }
2714
+ type AsciiDiagramBlockEntry = FenceBlockEntry;
2672
2715
  interface AsciiDiagramPluginState {
2673
2716
  entries: AsciiDiagramBlockEntry[];
2674
2717
  decorations: DecorationSet;
@@ -2759,6 +2802,12 @@ interface ApplyAsciiDiagramCommandOptions {
2759
2802
  * is re-recognized even after it's flattened. No-op (returns false) only when
2760
2803
  * BOTH the text is already identical AND the language already matches, so
2761
2804
  * history stays clean on a true no-op.
2805
+ *
2806
+ * This is the single write boundary for the diagram, tree AND timeline
2807
+ * families, so it is also where the editor's read-only authority is enforced.
2808
+ * A mounted canvas/outline outlives the render that created its controls, so
2809
+ * a host flipping the editor read-only (saving, locked, permission change)
2810
+ * must not leave a stale drag/click able to rewrite the fence.
2762
2811
  */
2763
2812
  declare function replaceAsciiFenceText(editor: Editor$1, pos: number, nextText: string, ensureLanguage?: string): boolean;
2764
2813
  /**
@@ -2790,12 +2839,7 @@ declare function applyAsciiDiagramCommand(editor: Editor$1, blockId: string, cmd
2790
2839
  * mapping so the button always resolves the right fence.
2791
2840
  */
2792
2841
 
2793
- interface RepairableBlockEntry {
2794
- /** Synthetic session id (`repair-N`), stable across edits for one block. */
2795
- id: string;
2796
- /** Document position of the codeBlock node at the current state. */
2797
- pos: number;
2798
- }
2842
+ type RepairableBlockEntry = FenceBlockEntry;
2799
2843
  interface RepairablePluginState {
2800
2844
  entries: RepairableBlockEntry[];
2801
2845
  decorations: DecorationSet;
@@ -2889,12 +2933,7 @@ declare function shouldPasteAsAsciiFence(text: string): boolean;
2889
2933
  * model. That keeps every Mermaid diagram type and directive round-trippable.
2890
2934
  */
2891
2935
 
2892
- interface MermaidDiagramBlockEntry {
2893
- /** Synthetic session id, stable while this code block remains in the doc. */
2894
- id: string;
2895
- /** Current ProseMirror position of the `codeBlock`. */
2896
- pos: number;
2897
- }
2936
+ type MermaidDiagramBlockEntry = FenceBlockEntry;
2898
2937
  interface MermaidDiagramPluginState {
2899
2938
  entries: MermaidDiagramBlockEntry[];
2900
2939
  decorations: DecorationSet;
@@ -3170,12 +3209,40 @@ declare function isMermaidFlowchartShapeId(value: string): value is MermaidFlowc
3170
3209
  declare function normalizeMermaidFlowchartShape(value: string | null | undefined): MermaidFlowchartShapeId;
3171
3210
 
3172
3211
  type MermaidFlowchartDirection = 'TB' | 'TD' | 'BT' | 'RL' | 'LR';
3212
+ type MermaidEditableDiagramKind = 'flowchart' | 'sequence' | 'state' | 'class' | 'er' | 'mindmap' | 'c4' | 'architecture' | 'gantt' | 'timeline' | 'journey' | 'kanban' | 'git' | 'pie' | 'quadrant' | 'sankey' | 'xy' | 'requirement';
3213
+ interface MermaidEditCapabilities {
3214
+ readonly addNode: boolean;
3215
+ readonly renameNode: boolean;
3216
+ readonly duplicateNode: boolean;
3217
+ readonly deleteNode: boolean;
3218
+ readonly connect: boolean;
3219
+ readonly disconnect: boolean;
3220
+ readonly edgeLabel: boolean;
3221
+ readonly shape: boolean;
3222
+ readonly direction: boolean;
3223
+ readonly properties: boolean;
3224
+ /** Explains why Connect is intentionally absent for ordered/data grammars. */
3225
+ readonly connectionHint?: string;
3226
+ }
3227
+ interface MermaidDiagramProperty {
3228
+ readonly id: string;
3229
+ readonly label: string;
3230
+ readonly value: string | boolean;
3231
+ readonly type?: 'text' | 'boolean' | 'select';
3232
+ readonly options?: readonly {
3233
+ readonly value: string;
3234
+ readonly label: string;
3235
+ }[];
3236
+ readonly placeholder?: string;
3237
+ }
3173
3238
  interface MermaidEditableNode {
3174
3239
  id: string;
3175
3240
  domId: string;
3176
3241
  label: string;
3177
3242
  shape: MermaidFlowchartShapeId;
3178
3243
  classes: readonly string[];
3244
+ /** Source adapter metadata. Never serialized into the Mermaid SVG. */
3245
+ origin?: Readonly<Record<string, string | number | boolean>>;
3179
3246
  }
3180
3247
  interface MermaidEditableEdge {
3181
3248
  id: string;
@@ -3185,6 +3252,8 @@ interface MermaidEditableEdge {
3185
3252
  type?: string;
3186
3253
  stroke?: string;
3187
3254
  userDefinedId?: boolean;
3255
+ /** Source adapter metadata. Never serialized into the Mermaid SVG. */
3256
+ origin?: Readonly<Record<string, string | number | boolean>>;
3188
3257
  }
3189
3258
  interface MermaidFlowchartModel {
3190
3259
  kind: 'flowchart';
@@ -3192,8 +3261,20 @@ interface MermaidFlowchartModel {
3192
3261
  nodes: readonly MermaidEditableNode[];
3193
3262
  edges: readonly MermaidEditableEdge[];
3194
3263
  }
3264
+ interface MermaidSourceEditableModel {
3265
+ kind: Exclude<MermaidEditableDiagramKind, 'flowchart'>;
3266
+ nodes: readonly MermaidEditableNode[];
3267
+ edges: readonly MermaidEditableEdge[];
3268
+ capabilities: MermaidEditCapabilities;
3269
+ properties: readonly MermaidDiagramProperty[];
3270
+ nodeNoun: string;
3271
+ edgeNoun: string;
3272
+ direction?: MermaidFlowchartDirection;
3273
+ }
3195
3274
  /** Structured editing is additive to full Mermaid rendering, never required by it. */
3196
- type MermaidEditableModel = MermaidFlowchartModel;
3275
+ type MermaidEditableModel = MermaidFlowchartModel | MermaidSourceEditableModel;
3276
+ declare function mermaidEditCapabilities(model: MermaidEditableModel): MermaidEditCapabilities;
3277
+ declare function mermaidDiagramProperties(model: MermaidEditableModel): readonly MermaidDiagramProperty[];
3197
3278
 
3198
3279
  type MermaidNodeCanvasAction = 'rename' | 'shape' | 'duplicate' | 'connect' | 'delete';
3199
3280
  interface MermaidDiagramCanvasProps {
@@ -3359,12 +3440,7 @@ declare function codeSnippetMarkdown(language: string, source: string): string;
3359
3440
  * extension claims any given fence.
3360
3441
  */
3361
3442
 
3362
- interface TreeBlockEntry {
3363
- /** Synthetic session id (`tree-N`), stable across edits for one block. */
3364
- id: string;
3365
- /** Document position of the codeBlock node at the current state. */
3366
- pos: number;
3367
- }
3443
+ type TreeBlockEntry = FenceBlockEntry;
3368
3444
  interface TreeViewPluginState {
3369
3445
  entries: TreeBlockEntry[];
3370
3446
  decorations: DecorationSet;
@@ -3488,12 +3564,7 @@ declare function shouldPasteAsTreeFence(text: string): boolean;
3488
3564
  * truth. Every semantic edit is rendered back through the core codec.
3489
3565
  */
3490
3566
 
3491
- interface TimelineBlockEntry {
3492
- /** Synthetic session id, stable across edits to one fence. */
3493
- id: string;
3494
- /** Current document position of the codeBlock node. */
3495
- pos: number;
3496
- }
3567
+ type TimelineBlockEntry = FenceBlockEntry;
3497
3568
  interface TimelineViewPluginState {
3498
3569
  entries: TimelineBlockEntry[];
3499
3570
  decorations: DecorationSet;
@@ -3990,10 +4061,17 @@ interface ScreenStreamOptions {
3990
4061
  /**
3991
4062
  * Handle returned by {@link requestScreenStream}. The `stream` is what
3992
4063
  * gets handed to `MediaRecorder`; the `dispose()` callback shuts down
3993
- * any auxiliary resources (e.g. the mic-mix `AudioContext`). Callers
3994
- * must also stop the stream's tracks via `stream.getTracks().forEach(t
3995
- * => t.stop())` when done — `dispose()` cleans up everything that isn't
3996
- * the stream itself.
4064
+ * any auxiliary resources (the mic-mix `AudioContext` plus the raw
4065
+ * source tracks feeding it). Callers must also stop the stream's tracks
4066
+ * via `stream.getTracks().forEach(t => t.stop())` when done —
4067
+ * `dispose()` cleans up everything that isn't the stream itself.
4068
+ *
4069
+ * IMPORTANT for callers: when the microphone is mixed in, the raw
4070
+ * system-audio / mic tracks are deliberately NOT members of `stream`
4071
+ * (only the single mixed output track is). So stopping `stream`'s tracks
4072
+ * alone leaves those captures live — `dispose()` is what releases them,
4073
+ * and it must always be called alongside the stream teardown or the
4074
+ * screen-share indicator stays lit.
3997
4075
  */
3998
4076
  interface ScreenStreamHandle {
3999
4077
  stream: MediaStream;
@@ -4217,22 +4295,47 @@ declare function buildNarrationSavePlan(args: NarrationSavePlanArgs): NarrationS
4217
4295
  interface ExecuteNarrationSaveDeps {
4218
4296
  mediaProvider: MediaProvider;
4219
4297
  container: ContentContainer | null;
4220
- markdownSource: string;
4298
+ /**
4299
+ * Read the LIVE markdown source at write time. Deliberately a getter, not
4300
+ * a snapshot: the media writes above are async, and a value captured before
4301
+ * them would compose the preamble from a stale source and clobber anything
4302
+ * that landed in between.
4303
+ */
4304
+ getMarkdownSource: () => string;
4221
4305
  setMarkdownSource: (next: string) => void;
4222
4306
  bumpMediaRevision: () => void;
4223
4307
  }
4308
+ /**
4309
+ * What a save attempt has already committed. Passed back in on a retry so a
4310
+ * second attempt REUSES the audio it already wrote instead of writing another
4311
+ * timestamped file (and orphaning the first).
4312
+ *
4313
+ * Mutated in place by {@link executeNarrationSave} as each step lands, which
4314
+ * is what makes the record survive the throw that aborted the attempt.
4315
+ */
4316
+ interface NarrationSaveProgress {
4317
+ audioPath?: string;
4318
+ cameraPath?: string | null;
4319
+ sidecarPath?: string;
4320
+ }
4224
4321
  interface NarrationSaveResult {
4225
4322
  audioPath: string;
4226
4323
  cameraPath: string | null;
4227
4324
  sidecarPath: string;
4228
4325
  }
4229
- /** Execute a save plan: media writes, sidecar, then the single markdown write. */
4326
+ /**
4327
+ * Execute a save plan: media writes, sidecar, then the single markdown write.
4328
+ *
4329
+ * Every step is idempotent against `progress`. A failed attempt leaves its
4330
+ * completed steps recorded there, so retrying with the SAME progress object
4331
+ * resumes rather than restarts — no duplicate audio, no second sidecar.
4332
+ */
4230
4333
  declare function executeNarrationSave(plan: NarrationSavePlan, take: {
4231
4334
  audioBlob: Blob;
4232
4335
  audioMime: string;
4233
4336
  cameraBlob: Blob | null;
4234
4337
  cameraMime: string | null;
4235
- }, deps: ExecuteNarrationSaveDeps): Promise<NarrationSaveResult>;
4338
+ }, deps: ExecuteNarrationSaveDeps, progress?: NarrationSaveProgress): Promise<NarrationSaveResult>;
4236
4339
 
4237
4340
  /**
4238
4341
  * Pure markdown edit: insert (or replace) the narration reference at the
@@ -4241,12 +4344,40 @@ declare function executeNarrationSave(plan: NarrationSavePlan, take: {
4241
4344
  * The narration take is referenced by a preamble media annotation —
4242
4345
  * `{[audio src=audio/narration-….webm anchor=document]}` — the canonical
4243
4346
  * authored form `markdownToDoc` lifts into `doc.documentMedia`. A prior
4244
- * teleprompter take's line (matched by the `audio/narration-` prefix +
4245
- * `anchor=document`) is replaced, so retakes swap the reference instead
4246
- * of stacking narrations. The optional camera companion rides on the
4247
- * next line as an inline `<video>` (deliberately NOT doc-anchored:
4347
+ * teleprompter take's line is replaced, so retakes swap the reference
4348
+ * instead of stacking narrations. The optional camera companion rides on
4349
+ * the next line as an inline `<video>` (deliberately NOT doc-anchored:
4248
4350
  * document-anchored video renders full-bleed behind every block and is
4249
4351
  * excluded from export audio — not a talking head).
4352
+ *
4353
+ * ## Matching a prior take by ROLE, not by path
4354
+ *
4355
+ * These patterns deliberately do not encode a `audio/narration-` /
4356
+ * `video/narration-cam-` path prefix. `narrationSave` treats the path
4357
+ * RETURNED by `MediaProvider.addMedia` as authoritative because providers
4358
+ * may rename or relocate the file, so a path-shaped matcher misses the
4359
+ * very annotation it wrote and the next retake stacks a second one — two
4360
+ * document-anchored audio tracks playing at once.
4361
+ *
4362
+ * Instead we match the annotation's ROLE, scoped to POSITION:
4363
+ *
4364
+ * - Narration: a `{[audio … anchor=document …]}` line. Document-anchored
4365
+ * audio is a single-occupancy slot (it becomes `doc.documentMedia` and
4366
+ * is what `applyNarrationTiming` / `resolveAudioMapping` treat as *the*
4367
+ * narration), so replacing whatever occupies it is exactly right —
4368
+ * two of them is never a valid document.
4369
+ * - Camera: a `<video …></video>` line sitting immediately after that
4370
+ * narration line (blank lines allowed between). Adjacency to the
4371
+ * preamble is the role marker here — an inline `<video>` carries no
4372
+ * anchor of its own, and this is the exact shape `cameraVideoLine`
4373
+ * emits as part of the same insert.
4374
+ *
4375
+ * Both matchers are confined to the PREAMBLE REGION — the blank-padded run
4376
+ * at the insertion point (top of file, or just after the frontmatter fence).
4377
+ * Role alone is not enough: matching document-wide would let a retake
4378
+ * silently replace a background-music annotation the user wrote further
4379
+ * down, or consume whichever `<video>` of theirs happened to follow it.
4380
+ * Content outside the region we wrote is never touched.
4250
4381
  */
4251
4382
  declare function narrationAnnotationLine(audioPath: string): string;
4252
4383
  declare function cameraVideoLine(cameraPath: string): string;
@@ -4652,6 +4783,8 @@ interface UseImageEditorOptions {
4652
4783
  * `assets/source.<ext>` so the doc is portable.
4653
4784
  */
4654
4785
  initialSrc?: string;
4786
+ /** Policy and byte/time limits for fetching `initialSrc`. */
4787
+ resourcePolicy?: ResourcePolicy;
4655
4788
  /** Override the state filename. Defaults to `state.json`. */
4656
4789
  stateFilename?: string;
4657
4790
  /** Enable version history. Default: `false`. */
@@ -4685,4 +4818,4 @@ interface UseImageEditorReturn {
4685
4818
  }
4686
4819
  declare function useImageEditor(options: UseImageEditorOptions): UseImageEditorReturn;
4687
4820
 
4688
- export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, type BlockRange, type BlockSlice, type BlockTagVisibility, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, type CameraStreamOptions, type CanvasRect, type CanvasSink, type CaptureKind, type CodeContext, type CodeContextSection, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DEFAULT_MERMAID_DIAGRAM_TYPE, DEFAULT_TELEPROMPTER_PREFS, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, type DocumentLinkCandidate, type DocumentLinkProvider, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EYE_LINE_FRACTION, type EditorActions, type EditorColorScheme, type EditorContextValue, type EditorMode, EditorProvider, type EditorProviderProps, EditorShell, type EditorShellProps, type EditorState, type EditorView, EmojiPicker, type EmojiPickerProps, type FileCategory, type FileKind, type FloatOpenOptions, type FloatTier, type FloatingWindowHandle, type FloatingWindowManager, type FolderEntry, FolderView, type FolderViewProps, type HeadingTransitionAttrs, HeadingWithTemplate, type ImageDisplayMode, ImageEditor, type ImageEditorAction, type ImageEditorProps, type ImageEditorState, type ImageEditorTool, ImageViewer, type ImageViewerProps, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, JsonEditor, type JsonEditorProps, type LayoutMode, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MediaBin, type MediaBinProps, type MediaClipPatch, type MentionCandidate, type MentionProvider, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, MermaidShapePalette, type MermaidShapePaletteProps, type MicAnalysisHandle, type MicAnalysisStatus, type MonacoWorkerConstructor, type MonacoWorkerConstructors, type NarrationRecorderController, type NarrationRecorderState, type NarrationSavePlan, type NarrationSaveResult, type NarrationTake, OutlinePanel, type OutlinePanelProps, PCM_WORKLET_NAME, PCM_WORKLET_SOURCE, PICKER_CATEGORIES, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, PreviewPanel, type PreviewPanelProps, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PrompterTransport, REPAIRABLE_KEY, RawEditor, type RawEditorProps, type RecordedBookmark, RecorderButton, type RecorderButtonProps, type RecorderColorScheme, RecorderModal, type RecorderModalProps, RecorderPanel, type RecorderPanelProps, type RecorderSaveResult, type RecorderSource, type RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, type ResolvedFormat, type ScreenStreamHandle, type ScreenStreamOptions, StatusBar, type StatusBarProps, TELEPROMPTER_CSS, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, type TeleprompterController, TeleprompterControls, type TeleprompterControlsProps, type TeleprompterPrefs, type TeleprompterRecordingDeps, TeleprompterSurface, type TeleprompterSurfaceProps, TeleprompterView, type TeleprompterViewProps, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, type ThemeInheritance, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineTrack, type TimelineTrackProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, type TimingJson, type TokenLineMap, Toolbar, type ToolbarProps, TooltipLayer, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseImageEditorOptions, type UseImageEditorReturn, type UseMediaRecorderOptions, type UseMediaRecorderResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, type ViewPreferences, ViewSwitcher, type ViewSwitcherProps, type WriteCanvasSettings, WysiwygEditor, type WysiwygEditorProps, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildFilename, buildNarrationSavePlan, buildPreviewDoc, buildTimingJson, cameraVideoLine, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, configureMonacoWorkers, createFloatingWindowManager, detectFloatTiers, detectLanguageFromFileName, draftPatchFromImportedTheme, encodeTimingJson, ensureTeleprompterStyles, executeNarrationSave, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findMermaidDiagramBlockPos, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getBlockSlices, getCaptureKind, getTimelineForNode, imageEditorReducer, indentItemOp, initialImageEditorState, insertNarrationPreamble, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, lineToOffset, markdownToTiptap, measureTokenLines, mermaidDiagramMarkdown, mermaidErrorMessage, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, narrationAnnotationLine, nextTimelineEventId, normalizeMermaidFlowchartShape, offsetToLine, outdentItemOp, parseTimelineForNode, partitionFiles, processMediaFiles, processTextFile, processTextFiles, prompterVarsFromTheme, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, registerPcmWorklet, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceAsciiFenceText as replaceTreeFenceText, requestCameraStream, requestMicStream, requestScreenStream, resizeNodeOp, resolveFileKind, resolveFormat, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, sliceIndexAtOffset, spliceBlock, stepScroll, summarizeBlockProps, supportsDisplayMedia, supportsMediaRecorder, supportsUserMedia, targetOffsetFor, templateLabel, timingPathFor, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, transitionLabel, translateDiagramOp, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useEditorContext, useFileDrop, useFloatingWindow, useImageEditor, useMediaRecorder, useMermaidDiagramData, useMicAnalysis, useMonacoLoader, useNarrationRecorder, usePreviewSettings, useStreamPreview, useTeleprompter, useTimelineData, useTreeViewData, vadConfigForSensitivity };
4821
+ export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, type BlockRange, type BlockSlice, type BlockTagVisibility, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, type CameraStreamOptions, type CanvasRect, type CanvasSink, type CaptureKind, type CodeContext, type CodeContextSection, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DEFAULT_MERMAID_DIAGRAM_TYPE, DEFAULT_TELEPROMPTER_PREFS, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, type DocumentLinkCandidate, type DocumentLinkProvider, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EYE_LINE_FRACTION, type EditorActions, type EditorColorScheme, type EditorContextValue, type EditorMode, EditorProvider, type EditorProviderProps, EditorShell, type EditorShellProps, type EditorState, type EditorView, EmojiPicker, type EmojiPickerProps, type FileCategory, type FileKind, type FloatOpenOptions, type FloatTier, type FloatingWindowHandle, type FloatingWindowManager, type FolderEntry, FolderView, type FolderViewProps, type HeadingTransitionAttrs, HeadingWithTemplate, type ImageDisplayMode, ImageEditor, type ImageEditorAction, type ImageEditorProps, type ImageEditorState, type ImageEditorTool, ImageViewer, type ImageViewerProps, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, JsonEditor, type JsonEditorProps, type LayoutMode, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MediaBin, type MediaBinProps, type MediaClipPatch, type MentionCandidate, type MentionProvider, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramProperty, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditCapabilities, type MermaidEditableDiagramKind, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, MermaidShapePalette, type MermaidShapePaletteProps, type MermaidSourceEditableModel, type MicAnalysisHandle, type MicAnalysisStatus, type MonacoWorkerConstructor, type MonacoWorkerConstructors, type NarrationRecorderController, type NarrationRecorderState, type NarrationSavePlan, type NarrationSaveResult, type NarrationTake, OutlinePanel, type OutlinePanelProps, PCM_WORKLET_NAME, PCM_WORKLET_SOURCE, PICKER_CATEGORIES, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, PreviewPanel, type PreviewPanelProps, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PrompterTransport, REPAIRABLE_KEY, RawEditor, type RawEditorProps, type RecordedBookmark, RecorderButton, type RecorderButtonProps, type RecorderColorScheme, RecorderModal, type RecorderModalProps, RecorderPanel, type RecorderPanelProps, type RecorderSaveResult, type RecorderSource, type RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, type ResolvedFormat, type ScreenStreamHandle, type ScreenStreamOptions, StatusBar, type StatusBarProps, TELEPROMPTER_CSS, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, type TeleprompterController, TeleprompterControls, type TeleprompterControlsProps, type TeleprompterPrefs, type TeleprompterRecordingDeps, TeleprompterSurface, type TeleprompterSurfaceProps, TeleprompterView, type TeleprompterViewProps, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, type ThemeInheritance, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineTrack, type TimelineTrackProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, type TimingJson, type TokenLineMap, Toolbar, type ToolbarProps, TooltipLayer, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseImageEditorOptions, type UseImageEditorReturn, type UseMediaRecorderOptions, type UseMediaRecorderResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, type ViewPreferences, ViewSwitcher, type ViewSwitcherProps, type WriteCanvasSettings, WysiwygEditor, type WysiwygEditorProps, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildFilename, buildNarrationSavePlan, buildPreviewDoc, buildTimingJson, cameraVideoLine, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, configureMonacoWorkers, createFloatingWindowManager, detectFloatTiers, detectLanguageFromFileName, draftPatchFromImportedTheme, encodeTimingJson, ensureTeleprompterStyles, executeNarrationSave, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findMermaidDiagramBlockPos, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getBlockSlices, getCaptureKind, getTimelineForNode, imageEditorReducer, indentItemOp, initialImageEditorState, insertNarrationPreamble, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, lineToOffset, markdownToTiptap, measureTokenLines, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidErrorMessage, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, narrationAnnotationLine, nextTimelineEventId, normalizeMermaidFlowchartShape, offsetToLine, outdentItemOp, parseTimelineForNode, partitionFiles, processMediaFiles, processTextFile, processTextFiles, prompterVarsFromTheme, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, registerPcmWorklet, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceAsciiFenceText as replaceTreeFenceText, requestCameraStream, requestMicStream, requestScreenStream, resizeNodeOp, resolveFileKind, resolveFormat, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, sliceIndexAtOffset, spliceBlock, stepScroll, summarizeBlockProps, supportsDisplayMedia, supportsMediaRecorder, supportsUserMedia, targetOffsetFor, templateLabel, timingPathFor, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, transitionLabel, translateDiagramOp, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useEditorContext, useFileDrop, useFloatingWindow, useImageEditor, useMediaRecorder, useMermaidDiagramData, useMicAnalysis, useMonacoLoader, useNarrationRecorder, usePreviewSettings, useStreamPreview, useTeleprompter, useTimelineData, useTreeViewData, vadConfigForSensitivity };